Network address translation (NAT) rewrites packet headers for the purpose of remapping a given IP address and/or ports. Many systems use network address translation to enable multiple hosts on a private network to access the Internet using a single public IP address. Network address translation obscures an internal networks structure. Traffic sent to and received from the Internet all appears to come from a single device.
Devices behind an NAT gateway may not have end to end connectivity. This may cause problems with some Internet protocols. Typically, incoming packets are prevented from reaching their destination on the internal network by the NAT gateway. Furthermore, NAT may interfere with tunneling protocols such as IPsec because NAT may modify values in the packet which cause integrity checks to fail.
However, NAT has become a popular method to address the limitation on the number of IPv4 addresses that are available. In particular, NAT is an indispensable function used extensively in routers for home and small office Internet connections. A common configuration has a local area network using a designated private IP address range (e.g., 192.1.x.x) connected to the Internet via a single public IP address.